如需移除,請網站管理者移除.
windows apache環境下部署SSL證書讓網站支援https的設定方法
安裝Apache, 下載安裝Apache時請下載帶有SSL版本的Apache安裝程式.
第一步當然是獲取證書啦
https://manage.sslforfree.com/
域名驗證通過後下載證書就行了
1_root_bundle.crt (證書鏈檔案)
2_www.domain.com_cert.crt(證書檔案)
3_www.domain.com.key(私鑰檔案)
把證書放到環境下 我是放在apache/cert下的 cert這個資料夾是我自己建立的
第二步修改伺服器的環境設定
第一個:找到【LoadModule ssl_module modules/mod_ssl.so】這一行,如果前面有#,去掉#,如果沒有,就不需要改動,保持不變即可。
第二個:找到【Include conf/extra/httpd-ssl.conf】這一行,如果前面有#,去掉#,如果沒有,就不需要改動,保持不變即可。
#下面三行是設定證書檔案,注意修改路徑和對應檔名稱,別搞混了
SSLCertificateFile "/phpStudy/PHPTutorial/Apache/cert/2_tktx.nichousha.cc.crt"
SSLCertificateKeyFile "/phpStudy/PHPTutorial/Apache/cert/3_tktx.nichousha.cc.key"
SSLCertificateChainFile "/phpStudy/PHPTutorial/Apache/cert/1_root_bundle.crt"
1.準備工作
1)在設定Apache + SSL之前, 需要做:
並且ssl需要的檔案在如下的位置:
[Apache安裝目錄]/modules/ mod_ssl.so
[Apache安裝目錄]/bin/ openssl.exe, libeay32.dll, ssleay32.dll, openssl.cnf
[Apache安裝目錄]/conf/ openssl.cnf
建立SSL證書(注意,有的整合環境裡面自帶了openssl,但是bin目錄下沒有openssl.cnf,需要將conf下的openssl.cnf拷貝一份到bin目錄下,但總體原理一樣)
2)在windows環境下需先設定Openssl環境變數:
執行命令 set OPENSSL_CONF=..confopenssl.cnf
開啟CMD,進入到Apache安裝目錄下的bin目錄下:
D:xamppapachein
步驟一:執行命令 openssl genrsa 1024 >server.key
openssl genrsa 1024 >server.key
說明:RSA金鑰對的預設長度是1024,取值是2的整數次方,並且金鑰長度約長,安全性相對會高點。
完成金鑰server.key生產完畢後進行步驟二操作。
步驟二:生產為簽署的server.csr,繼續在bin目錄下執行命令:
openssl req -new -config openssl.cnf -key server.key >server.csr
說明:如果不加-config .openssl.cnf引數的話,常會報Unable to load config info from .../ssl/openssl.cnf
之後就會要求輸入一系列的引數:
Country Name (2 letter code) [AU]:CN ISO 國家程式碼(只支援兩位字元)
State or Province Name (full name) [Some-State]:ZJ 所在省份
Locality Name (eg, city) []:HZ 所在城市
Organization Name (eg, company): yiban公司名稱
Organizational Unit Name (eg, section) []:yiban 組織名稱
Common Name (eg, YOUR name) []: localhost:80申請證書的域名(建議和httpd.conf中serverName必須一致)
Email Address []:admin@admin.com 管理員郵箱
Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: 1234交換金鑰
An optional company name []:CD
注:Common Name建議和httpd.conf中serverName必須一致,否則有可能導致apache不能啟動
(啟動 apache 時錯誤提示為:server RSA certificate CommonName (CN) `Kedou' does NOT match server name!?)完成簽署的server.csr設定。
步驟三:
簽署伺服器證書檔案 server.crt
在 bin/目錄下執行命令:
openssl req -x509 -days 5000 -config openssl.cnf -key server.key -in server.csr >server.crt
說明:這是用步驟 1,2 的的金鑰和證書請求生成證書 server.crt,-days 引數 指明證書有效期,單位為天,x509 表示生成的為 X.509 證書。
步驟四:
在bin 目錄下,找到server.crt、server.csr、server.key三個檔案,將此三個檔案剪下到Apache的conf目錄下。
步驟五:
設定 httpd.conf. 在Apache的confextra目錄下的 httpd_ssl.conf 檔案是關於 ssl 的設定,是httpd.conf的一部分。
在httpd.conf 中新增下列兩行(有的話把檔案前面的註釋「#」符號去掉):
LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
步驟六:
(注意:相同部分被省略掉)
在confextra目錄下,編輯 httpd_ssl.conf
Listen 443 SSLPassPhraseDialog builtin SSLSessionCache "dbm:c:/Apache24/logs/ssl_scache" #SSLSessionCache "shmcb:c:/Apache24/logs/ssl_scache(512000)"
Listen 443
SSLPassPhraseDialog builtin
SSLSessionCache "dbm:c:/Apache24/logs/ssl_scache"
#SSLSessionCache "shmcb:c:/Apache24/logs/ssl_scache(512000)"
(以上2種請自行監測,如有一種導致伺服器啟動不了,就換成另一種)
SSLSessionCacheTimeout 300
<VirtualHost www.my.com:443> #DocumentRoot "D:/wamp/bin/apache/apache2.4.9/htdocs" DocumentRoot "C:/wamp/www/hxq" ServerName www.my.com:443 ServerAlias my.com:443 ServerAdmin webmaster@chinancce.com DirectoryIndex index.html index.htm index.php default.php app.php u.php ErrorLog logs/example_error.log CustomLog logs/example_access.log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b" SSLEngine On SSLCertificateFile "C:/wamp/bin/apache/apache2.4.9/conf/server.crt" SSLCertificateKeyFile "C:/wamp/bin/apache/apache2.4.9/conf/server.key" #SSLCertificateChainFile "C:/upupw/Apache2/conf/1_root_bundle.crt" <FilesMatch ".(shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 <Directory "C:/wamp/www/hxq"> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
以上最容易出問題的地方是http_ssl.conf中的紀錄檔等路徑問題,建議按照物理路徑進行設定
步驟七:
偵錯執行Apache,對於Apache。如果是整合環境如xampp,wampserver,或者phpstudy啟動Apache Server,可能我們不知道我們的伺服器出現了什麼問題,建議檢視 Apache/logs下的紀錄檔,在此基礎上,配合cmd命令列在bin目錄下執行httpd命令,如果不報錯,說明伺服器執行沒問題,否則根據提示再做修改
2.測試執行
重啟apahce服務
回覆